package com.asset.dispoal.business.approval.api;

import com.asset.dispoal.business.approval.dto.ApproverListResponse;
import com.asset.dispoal.business.approval.dto.AuditRequest;
import com.asset.dispoal.business.approval.dto.GetApproverRequest;
import com.asset.dispoal.business.approval.dto.GetRepaymentApprovalListRequest;
import com.asset.dispoal.business.approval.dto.RepaymentApprovalResponse;
import com.asset.dispoal.business.approval.dto.RepaymentApproverBindRequest;
import com.asset.dispoal.business.approval.dto.RepaymentApproverResponse;
import com.asset.dispoal.business.approval.dto.RepaymentDetailResponse;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

/**
 * @description:
 * @author: yf
 * @date: 2022-10-09 09:53:58
 */
public interface RepaymentApproverService {
    /**
     * 还款审核人绑定
     *
     * @param request
     */
    Result bind(RepaymentApproverBindRequest request);

    /**
     * 根据批次种类id获取还款人信息集合
     *
     * @param assetInstBatchId
     * @return
     */
    Result<RepaymentApproverResponse> getBindApprover(String assetInstBatchId);

    /**
     * 审核
     *
     * @param request
     */
    Result audit(AuditRequest request);

    /**
     * 获取审核列表
     *
     * @param request
     * @return
     */
    Result<PageVO<RepaymentApprovalResponse>> getApprovalList(GetRepaymentApprovalListRequest request);

    /**
     * 根据id获取还款详情
     *
     * @param repaymentLogId
     * @return
     */
    RepaymentDetailResponse getApprovalDetail(String repaymentLogId);

    /**
     * 获取审核人列表
     *
     * @param request
     * @return
     */
    Result<PageVO<ApproverListResponse>> getApprover(GetApproverRequest request);

    /**
     * 获取我的还款列表
     *
     * @param request
     * @return
     */
    Result<PageVO<RepaymentApprovalResponse>> getMyRepaymentList(GetRepaymentApprovalListRequest request);
}
